;layui.define(function (e) {
    layui.use(['index', 'jquery', 'http', 'common', 'table', 'layer'], function () {

        var $ = layui.jquery
            , http = layui.http
            , table = layui.table
            , common = layui.common
            , layer = parent.layer === undefined ? layui.layer : top.layer;

        var urls = {
            queryPageData: "/core/permission/queryPageData",
            addDataPage: "/core/permission/modifyDataDialog",
            deleteData: "/core/permission/deleteData"
        };

        var tableIns;
        var index;
        queryPageData();

        function queryPageData () {
            //第一个实例
            tableIns = http.table({
                elem: '#dataList'
                , height: 'full-100'
                , page: {curr: 1}//重新从第 1 页开始
                , skin: 'rows'
                , url: urls.queryPageData //数据接口
                , where: {
                    "name": $("#name").val()
                    , field: 'updateTime' //排序字段
                    , order: 'desc' //排序方式
                }
                , cols: [[ //表头
                    {field: 'name', title: '权限名称', minWidth: 120}
                    , {field: 'sign', title: '权限标识', minWidth: 140}
                    , {field: 'description', title: '权限描述', minWidth: 120}
                    , {field: 'creator', title: '创建人', minWidth: 120, width: 80}
                    , {field: 'createTime', title: '创建时间', sort: true, minWidth: 180}
                    , {field: 'updateBy', title: '更新人', minWidth: 120, width: 80}
                    , {field: 'updateTime', title: '更新时间', sort: true, minWidth: 180}
                    , {title: '操作', fixed: 'right', align: "center", minWidth: 100, templet: '#opTpl'}
                ]]
                , initSort: {
                    field: 'updateTime' //排序字段，对应 cols 设定的各字段名
                    , type: 'desc' //排序方式  asc: 升序、desc: 降序、null: 默认排序
                }
            });
        }

        table.on('tool(dataList)', function (obj) {
            var layEvent = obj.event,
                data = obj.data;
            if (layEvent == 'del') {
                layer.confirm('删除该权限将会删除权限相关的数据,确定删除吗？', {icon: 3, title: '提示信息'}, function () {
                    http.post({
                        loading: true,
                        loadingText: '数据提交中,请稍候...',
                        url: urls.deleteData + "/" + data.id,
                        data: {},
                        success: function () {
                            common.showSuccessTips('数据删除成功', function () {
                                fn.refresh();
                            });
                        }
                    });
                });
            }
            if (layEvent == 'edit') {
                openEditDialog('修改权限', data.id);
            }
        });

        table.on('sort(dataList)', function (obj) { //注：tool是工具条事件名，test是table原始容器的属性 lay-filter="对应的值"
            tableIns.reload({
                initSort: obj //记录初始排序，如果不设的话，将无法标记表头的排序状态。 layui 2.1.1 新增参数
                , where: { //请求参数（注意：这里面的参数可任意定义，并非下面固定的格式）
                    field: obj.field //排序字段
                    , order: obj.type //排序方式
                }
            });
        });

        fn.refresh = function () {
            if (index)
                layui.layer.close(index);
            tableIns.reload({
                where: {
                    "name": $("#name").val()
                    , field: 'updateTime' //排序字段
                    , order: 'desc' //排序方式}
                }
                , page: {
                    curr: 1 //重新从第 1 页开始
                }
            });
        };

        $("#btnQuery").on("click", function () {
            fn.refresh();
        });

        $("#btnAddPage").click(function () {
            openEditDialog('添加权限', '');
        });

        var openEditDialog = function (title, id) {
            index = layui.layer.open({
                type: 2,
                title: title,
                shade: [0.8, '#C8E6C9'],
                maxmin: true,
                area: ['450px', '400px'],
                content: urls.addDataPage + "?id=" + id,
                btn: ['保存', '关闭'],
                btnAlign: 'c',
                yes: function (index, layero) {
                    layero.find('iframe').contents().find("#formAdd").find("#btnAdd").click();
                },
                btn2: function (index) {
                    layui.layer.close(index);
                }
            });
        };
    });

    e("core/permission", {})
});